<!DOCTYPE html>
<html lang="it">
	<head>
		<meta charset="utf-8" />
		<base href="../../../../" />
		<script src="page.js"></script>
		<link type="text/css" rel="stylesheet" href="page.css" />
	</head>
	<body>
		<h1>[name]</h1>

		<p class="desc">
      Una classe base astratta per la creazione di un oggetto [name] che contiene i metodi di interpolazione.
      Per un array di [name] vedere [page:CurvePath].
		</p>

		<h2>Costruttore</h2>


		<h3>[name]()</h3>
		<p>
      Questo costruttore crea una nuova [name].
		</p>

		<h2>Proprietà</h2>

		<h3>[property:Integer arcLengthDivisions]</h3>
		<p>
      Questo valore determina la quatità di divisioni quando vengono calcolate le lunghezze cumulative dei segmenti tramite [page:.getLengths].
      Per garantire la precisione quando vengono utilizzati metodi come [page:.getSpacedPoints], si consiglia di aumentare la proprietà 
      [page:.arcLengthDivisions] se la curva è molto grande. Il valore predefinito è 200.
    </p>

		<h2>Metodi</h2>

		<h3>[method:Vector getPoint]( [param:Float t], [param:Vector optionalTarget] )</h3>
		<p>
			[page:Float t] - Una posizione sulla curva. Deve essere compreso nell'intervallo [ 0, 1 ]. <br>
			[page:Vector optionalTarget] — (opzionale) Se specificato, il risultato verrà copiato in questo vettore,
			altrimenti verrà creato un nuovo vettore. <br /><br />

      Restituisce un vettore per una data posizione sulla curva.
		</p>

		<h3>[method:Vector getPointAt]( [param:Float u], [param:Vector optionalTarget] )</h3>
		<p>
			[page:Float u] - Una posizione sulla curva in base alla lunghezza dell'arco. Deve essere compreso nell'intervallo [ 0, 1 ]. <br>
			[page:Vector optionalTarget] — (opzionale) Se specificato, il risultato verrà copiato in questo vettore,
			altrimenti verrà creato un nuovo vettore. <br /><br />

      Restituisce un vettore per una data posizione sulla curva in base alla lunghezza dell'arco.
		</p>

		<h3>[method:Array getPoints]( [param:Integer divisions] )</h3>
		<p>
			divisions -- numero di pezzi in cui dividere la curva. Il valore predefinito è `5`.<br /><br />

      Restituisce un insieme di divisioni + 1 punto usando getPoint( t ).
		</p>

		<h3>[method:Array getSpacedPoints]( [param:Integer divisions] )</h3>
		<p>
			divisions -- numero di pezzi in cui dividere la curva. Il valore predefinito è `5`.<br /><br />

      Restituisce un insieme di divisioni + 1 punto equispaziato usando getPointAt( u ).
		</p>

		<h3>[method:Float getLength]()</h3>
		<p>Restituisce la lunghezza totale dell'arco della curva.</p>

		<h3>[method:Array getLengths]( [param:Integer divisions] )</h3>
		<p>Restituisce la lista delle lunghezze cumulative del segmento.</p>

		<h3>[method:undefined updateArcLengths]()</h3>
		<p>
      Aggiorna la cache della distanza cumulativa del segmento. Il metodo deve essere chiamato ogni volta 
      che i parametri della curva vengono modificati. Se una curva aggiornata fa parte di una curva composta come 
      [page:CurvePath], [page:.updateArcLengths]() deve essere chiamato anche sulla curva composta.
		</p>

		<h3>[method:Float getUtoTmapping]( [param:Float u], [param:Float distance] )</h3>
		<p>
      Dato u nell'intervallo ( 0 .. 1 ), restituisce [page:Float t] anche nell'intervallo ( 0 .. 1 ).
      u e t possono quindi essere utilizzati per fornire punti equidistanti dalle estremità della curva, utilizzando
      [page:.getPoint].
		 </p>

		<h3>[method:Vector getTangent]( [param:Float t], [param:Vector optionalTarget] )</h3>
		<p>
			[page:Float t] - Una posizione sulla curva. Deve essere compreso nell'intervallo [ 0, 1 ]. <br>
			[page:Vector optionalTarget] — (opzionale) Se specificato, il risultato sarà copiato in questo vettore,
      altrimenti sarà creato un nuovo vettore.<br /><br />

      Restituisce un vettore unitario tangente a t. Se la curva derivata non implementa la sua derivazione tangente,
      per trovare la sua pendenza verranno utilizzati due punti distanti un piccolo delta, che sembrano fornire 
      un'approssimazione ragionevole.
		</p>

		<h3>[method:Vector getTangentAt]( [param:Float u], [param:Vector optionalTarget] )</h3>
		<p>
			[page:Float u] - Una posizione sulla curva in base alla lunghezza dell'arco. Deve essere compreso nell'intervallo [ 0, 1 ]. <br>
			[page:Vector optionalTarget] — (opzionale) Se specificato, il risultato sarà copiato in questo vettore,
      altrimenti sarà creato un nuovo vettore.<br /><br />

      Restituisce la tangente in un punto equidistante dalle estremità della curva dal punto indicato 
      in [page:.getTangent].
		</p>

		<h3>[method:Object computeFrenetFrames]( [param:Integer segments], [param:Boolean closed] )</h3>
		<p>
      Genera i Frame Franet. Richiede una definizione della curva nello spazio 3D. Utilizzata nelle geometrie come [page:TubeGeometry] o [page:ExtrudeGeometry].
		</p>

		<h3>[method:Curve clone]()</h3>
		<p>Crea un clone di questa istanza.</p>

		<h3>[method:this copy]( [param:Curve source] )</h3>
		<p>Copia un altro oggetto [name] in questa istanza.</p>

		<h3>[method:Object toJSON]()</h3>
		<p>Restituisce un oggetto JSON rappresentazione di questa istanza.</p>

		<h3>[method:this fromJSON]( [param:Object json] )</h3>
		<p>Copia i dati dell'oggetto JSON dato in questa istanza.</p>

		<h2>Source</h2>

		<p>
			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
		</p>
	</body>
</html>
